<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>事件处理</title>
  <script src="https://unpkg.com/react@16/umd/react.development.js"></script>
  <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
  <!-- 生产环境中不建议使用 -->
  <script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
</head>

<body>
  <!-- 容器 -->
  <div id="test"></div>

  <script type="text/babel">
   class Demo extends React.Component {
      /**
       (1).通过onXxx属性指定事件处理函数(注意大小写)
          a.React使用的是自定义(合成)事件，而不是使用的原生D0M事件  ------- 为了更好的兼容性
          b.React中的事作是通过事件委托方式处理的(委托给组件最外层的元素) ----------为了的商效
       (2).通过event.target得到发生事件的D0M元素对象 -----------不要过度使川ref
       */
      myRef = React.createRef()
      showData = ()=>{
        alert(this.myRef.current.value)
      }
      showData2 = (event)=>{
        console.log(event.target.value);
        alert(event.target.value)
      }
      render(){
        return (
          <div>
            <input ref={this.myRef} type="text" placeholder="点击按钮提示数据" />&nbsp;
            <button onClick={this.showData}>点我提示左侧的数据</button>&nbsp;
            <input onBlur={this.showData2} type="text"placeholder="失去焦点提示数据" />
            </div>
        )
      }
   }
   
    //2.渲染虚拟DOM到页面
    ReactDOM.render(<Demo a="1" b="2"/>, document.getElementById("test"))
  </script>

</body>

</html>
